A user interface or UI is used by an operator or user to interact with an application program or programs (application) resident on a computer. The UI may or may not be part of the application. In certain cases, a UI may be called by an operating system running on the computer. Typically, the user UI is specific to the application, particularly tailored to specific users, and/or specific to a system under management (i.e., computer) that is running the application.
UIs may implement graphic objects, such as buttons and menus, which are represented to a user on a screen or display. Particular state transitions (transitions) and actions may be associated with specific graphic objects. For example, transitions and actions occur when the user activates a particular graphic object. Through the UI, the activation causes the particular graphic object to perform a specific task or cause a specific action. These graphic objects, and their associated transitions and actions, are particularly hard-coded into the UI, meaning that the graphic objects, and their associated transitions and actions, are written to handle specific situations. In other words, user interfaces and tools that implement UIs are generally monolithic and non-reusable.
There are cases when it is desirable to provide a different or modified UI to support different applications, users, and/or systems under management. For example, there may be a situation when it is desirable to provide a different transition or action associated with a graphic object in the UI. However, providing different or new UIs may involve extensive knowledge of the application and/or preexisting UI that supports the application. Furthermore, extensive revisions to preexisting UI code or new user UI code may be needed.